from functools import wraps
from flask import g, redirect, url_for


# 登录装饰器，没懂，很复杂
def login_required(func):
    # wraps装饰器：保留原来函数的信息，不至于信息更改后得不到原来的信息
    @wraps(func)
    # 万能参数：*代表位置参数，**存储关键字参数
    def inner(*args, **kwargs):
        # 判断有没有user用户
        if g.user:
            # 有就正常执行
            return func(*args, **kwargs)
        else:
            return redirect(url_for("auth.login"))
    return inner